package br.com.testeunitario.calculahora;

import static org.junit.Assert.*;

import java.util.Calendar;
import java.util.GregorianCalendar;

import org.junit.Test;

import br.com.controlehr.modelo.CalculaHora;
import br.com.controlehr.modelo.Empresa;
import br.com.controlehr.modelo.Funcionario;
import br.com.controlehr.modelo.Horas;

public class CalculaHoraTest {

	@Test
	public void verficaHoraDeAlmoco() {
		Calendar hrSaidaAlmoco = new GregorianCalendar(2012, 01, 28, 12, 00);

		Calendar hrEntradaAlmoco = new GregorianCalendar(2012, 01, 28, 12, 13);

		Horas hr = new Horas();
		hr.setSaidaAlmoco(hrSaidaAlmoco);
		hr.setEntradaAlmoco(hrEntradaAlmoco);

		Calendar hrsTrabPorDia = Calendar.getInstance();
		hrsTrabPorDia.add(Calendar.HOUR_OF_DAY, 8);
		Funcionario funcionario = new Funcionario("Willian R.S.Teophilo",
				"2359-10", hr, hrsTrabPorDia, 12.00, 1100);
		Calendar tempoPermitido = new GregorianCalendar(0000, 00, 00, 00, 15);
		Empresa empresa = new Empresa("Digital Software", "091323-10",
				"Rua Santana,126", tempoPermitido);
		CalculaHora calculaHora = new CalculaHora();

		assertEquals(true,
				calculaHora.isDentroDoHorarioAlmoco(funcionario, empresa));
	}

	@Test
	public void verficaHoraComNumeroAbsurdo() {
		Calendar hrSaidaAlmoco = new GregorianCalendar(2012, 01, 28, 12, -20);

		Calendar hrEntradaAlmoco = new GregorianCalendar(2012, 01, 28, 12, -13);

		Horas hr = new Horas();
		hr.setSaidaAlmoco(hrSaidaAlmoco);
		hr.setEntradaAlmoco(hrEntradaAlmoco);

		Calendar hrsTrabPorDia = Calendar.getInstance();
		hrsTrabPorDia.add(Calendar.HOUR_OF_DAY, 8);
		Funcionario funcionario = new Funcionario("Willian R.S.Teophilo",
				"2359-10", hr, hrsTrabPorDia, 12.00, 1100);
		Calendar tempoPermitido = new GregorianCalendar(0000, 00, 00, 00, 15);
		Empresa empresa = new Empresa("Digital Software", "091323-10",
				"Rua Santana,126", tempoPermitido);
		CalculaHora calculaHora = new CalculaHora();

		assertEquals(false,
				calculaHora.isDentroDoHorarioAlmoco(funcionario, empresa));

	}

}
